package aom.ju.ss.utils.pay;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;


import aom.ju.ss.utils.LogUtils;

/**
 * Created by sunning on 2018/7/9.
 */
public class AliPayUtil {

    private Activity act;
//    private PayHandler myHandler;

    public AliPayUtil(Activity act, AliPaySuccessListener lis) {
        this.act = act;
//        myHandler = new PayHandler(lis);
    }

    public AliPayUtil(Activity act, String uri) {

        this.act = act;

        LogUtils.e(uri);
        Intent intent = new Intent(Intent.ACTION_VIEW); //Intent.ACTION_VIEW固定写法
        intent.setData(Uri.parse(uri)); //url是你要跳转的网页地址
        act.startActivity(intent);

        if (act != null && !act.isDestroyed() && !act.isFinishing()) {
            act.finish();
        }


//        myHandler = new PayHandler(lis);
    }

//    public void pay(final String sign) {
//        new Thread(() -> {
//            Message msg = new Message();
//            Map<String, String> result = new PayTask(act).payV2(sign, true);
//            msg.what = SDK_PAY_FLAG;
//            msg.obj = result;
//            myHandler.sendMessage(msg);
//        }).start();
//    }

    private static final int SDK_PAY_FLAG = 1;
    private static final int SDK_CHECK_FLAG = 2;

//    private static class PayHandler extends Handler {
//
//        private AliPaySuccessListener lis;
//
//        private PayHandler(AliPaySuccessListener lis) {
//            this.lis = lis;
//        }
//
//        @Override
//        public void handleMessage(Message msg) {
//            super.handleMessage(msg);
//            switch (msg.what) {
//                case SDK_PAY_FLAG: {
//                    PayResult payResult = new PayResult(msg.obj);
//                    // 支付宝返回此次支付结果及加签，建议对支付宝签名信息拿签约时支付宝提供的公钥做验签
//                    String resultInfo = payResult.getResult();
//                    String resultStatus = payResult.getResultStatus();
//                    // 判断resultStatus 为“9000”则代表支付成功，具体状态码代表含义可参考接口文档
//                    if (TextUtils.equals(resultStatus, "9000")) {
//                        if (lis == null) {
//                            UIUtils.toast("支付成功");
//                        } else {
//                            lis.onSuccess();
//                        }
//
//                    } else {
//                        // 判断resultStatus 为非“9000”则代表可能支付失败
//                        // “8000”代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认，最终交易是否成功以服务端异步通知为准（小概率状态）
//                        if (TextUtils.equals(resultStatus, "8000")) {
//                            UIUtils.toast("支付结果确认中");
//
//                        } else {
//                            // 其他值就可以判断为支付失败，包括用户主动取消支付，或者系统返回的错误
//                            if (lis == null) {
//                                UIUtils.toast("支付失败");
//                            } else {
//                                lis.onFail();
//                            }
//                        }
//                    }
//                    break;
//                }
//                case SDK_CHECK_FLAG: {
//                    UIUtils.toast("检查结果为：" + msg.obj);
//                    break;
//                }
//                default:
//                    break;
//            }
//        }
//    }

    public interface AliPaySuccessListener {
        void onSuccess();

        void onFail();
    }
}
